package snake;

//使用枚举定义蛇的前进方向
enum Direction {
    UP(0),
    RIGHT(1),
    DOWN(2),
    LEFT(3);

    private final int directionCode;

    Direction(int directionCode) {
        this.directionCode = directionCode;
    }

//这里会出现一种操作错误，例如蛇在向上前进时，按了向下，就会使新增的蛇头节点于身体节点接触导致游戏失败
//所以定义了一个布尔值的compatibleWith，当蛇前进方位对应的数字于获取到的指示方位之间的绝对值=2，意为方向正好相反
//如果方向正好相反，则会返回false,用于后期调用该方法时使相反方向的操作无效化
    public boolean compatibleWith(Direction d){//
        if (Math.abs(this.directionCode-d.directionCode)==2) {
            return false;
        } else {
            return true;
        }
    }
}
